
Obj/FWlib_apt32f172_ifc.o:     file format elf32-csky-little


Disassembly of section .text:

00000000 <ProgramData>:
//EntryParameter:FlashAdd、DataSize、*BufArry
//ReturnValue:NONE
*************************************************************/
//DataSize 一定是4的倍数
void ProgramData(unsigned int FlashAdd,unsigned int DataSize,unsigned char *BufArry)
{
   0:	14c3      	push      	r4-r6
	int i,DataBuffer;
	
	for(i=0;i<((DataSize+3)/4);i++)   //sizeof structure
   2:	2102      	addi      	r1, 3
   4:	4922      	lsri      	r1, r1, 2
	{
		SetUserKey;
   6:	1070      	lrw      	r3, 0	// 44 <ProgramData+0x44>
   8:	4122      	lsli      	r1, r1, 2
   a:	9380      	ld.w      	r4, (r3, 0)
   c:	6048      	addu      	r1, r2
   e:	600a      	subu      	r0, r2
  10:	10ae      	lrw      	r5, 0x5a5a5a5a	// 48 <ProgramData+0x48>
	for(i=0;i<((DataSize+3)/4);i++)   //sizeof structure
  12:	644a      	cmpne      	r2, r1
  14:	5a60      	addu      	r3, r2, r0
  16:	0802      	bt      	0x1a	// 1a <ProgramData+0x1a>
		StartProgram;
		while((GetCRStatus)!=0);
		BufArry  +=4;
		FlashAdd +=4;
	}
}
  18:	1483      	pop      	r4-r6
		SetUserKey;
  1a:	b4a8      	st.w      	r5, (r4, 0x20)
		WrProgramAdd(FlashAdd);
  1c:	b466      	st.w      	r3, (r4, 0x18)
		DataBuffer=*BufArry+(*(BufArry+1)<<8)+(*(BufArry+2)<<16)+(*(BufArry+3)<<24);
  1e:	8261      	ld.b      	r3, (r2, 0x1)
  20:	82c0      	ld.b      	r6, (r2, 0)
  22:	4368      	lsli      	r3, r3, 8
  24:	60d8      	addu      	r3, r6
  26:	82c2      	ld.b      	r6, (r2, 0x2)
  28:	46d0      	lsli      	r6, r6, 16
  2a:	60d8      	addu      	r3, r6
  2c:	82c3      	ld.b      	r6, (r2, 0x3)
  2e:	46d8      	lsli      	r6, r6, 24
  30:	60d8      	addu      	r3, r6
		WrProgramData(DataBuffer);
  32:	b467      	st.w      	r3, (r4, 0x1c)
		EnNormalProgram;
  34:	3301      	movi      	r3, 1
  36:	b463      	st.w      	r3, (r4, 0xc)
		StartProgram;
  38:	b464      	st.w      	r3, (r4, 0x10)
		while((GetCRStatus)!=0);
  3a:	9464      	ld.w      	r3, (r4, 0x10)
  3c:	3b40      	cmpnei      	r3, 0
  3e:	0bfe      	bt      	0x3a	// 3a <ProgramData+0x3a>
		BufArry  +=4;
  40:	2203      	addi      	r2, 4
  42:	07e8      	br      	0x12	// 12 <ProgramData+0x12>
  44:	00000000 	.long	0x00000000
  48:	5a5a5a5a 	.long	0x5a5a5a5a

0000004c <ReadDataArry>:
//EntryParameter:RdStartAdd、DataLength、*DataArryPoint
//ReturnValue:NONE
*************************************************************/
//DataLength 一定是4的倍数
void ReadDataArry(unsigned int RdStartAdd,unsigned int DataLength,unsigned char *DataArryPoint)
{
  4c:	14c1      	push      	r4
	unsigned int i,Buffer;
	
	for(i=0;i<((DataLength+3)/4);i++)
  4e:	2102      	addi      	r1, 3
  50:	4922      	lsri      	r1, r1, 2
  52:	4122      	lsli      	r1, r1, 2
  54:	6048      	addu      	r1, r2
  56:	600a      	subu      	r0, r2
  58:	644a      	cmpne      	r2, r1
  5a:	0802      	bt      	0x5e	// 5e <ReadDataArry+0x12>
		*(DataArryPoint+2)=Buffer>>16;
		*(DataArryPoint+3)=Buffer>>24;
		RdStartAdd +=4;
		DataArryPoint +=4;
	}
}
  5c:	1481      	pop      	r4
  5e:	5a60      	addu      	r3, r2, r0
		Buffer=*(volatile unsigned int *)RdStartAdd;
  60:	9360      	ld.w      	r3, (r3, 0)
		*(DataArryPoint+1)=Buffer>>8;
  62:	4b88      	lsri      	r4, r3, 8
		*DataArryPoint=Buffer;
  64:	a260      	st.b      	r3, (r2, 0)
		*(DataArryPoint+1)=Buffer>>8;
  66:	a281      	st.b      	r4, (r2, 0x1)
		*(DataArryPoint+2)=Buffer>>16;
  68:	4b90      	lsri      	r4, r3, 16
		*(DataArryPoint+3)=Buffer>>24;
  6a:	4b78      	lsri      	r3, r3, 24
		*(DataArryPoint+2)=Buffer>>16;
  6c:	a282      	st.b      	r4, (r2, 0x2)
		*(DataArryPoint+3)=Buffer>>24;
  6e:	a263      	st.b      	r3, (r2, 0x3)
		DataArryPoint +=4;
  70:	2203      	addi      	r2, 4
  72:	07f3      	br      	0x58	// 58 <ReadDataArry+0xc>

00000074 <ProgramOneWord>:
//ProgramAdd：0x00000000~0x00007c00;0x10000000~0x10000C00
//WrDat：4BYTE
//ReturnValue:NONE
*************************************************************/   
void ProgramOneWord(unsigned int ProgramAdd,unsigned int WrData)
{
  74:	14c1      	push      	r4
  76:	1421      	subi      	sp, sp, 4
	volatile unsigned int Result=0;
  78:	3300      	movi      	r3, 0
  7a:	b860      	st.w      	r3, (sp, 0)
	do
	{
		SetUserKey;
  7c:	1386      	lrw      	r4, 0x5a5a5a5a	// 214 <IFC_Int_Enable+0xe>
  7e:	1367      	lrw      	r3, 0	// 218 <IFC_Int_Enable+0x12>
  80:	9360      	ld.w      	r3, (r3, 0)
		WrProgramAdd(ProgramAdd);
		WrProgramData(WrData);
		EnNormalProgram;
  82:	3201      	movi      	r2, 1
		SetUserKey;
  84:	b388      	st.w      	r4, (r3, 0x20)
		WrProgramAdd(ProgramAdd);
  86:	b306      	st.w      	r0, (r3, 0x18)
		WrProgramData(WrData);
  88:	b327      	st.w      	r1, (r3, 0x1c)
		EnNormalProgram;
  8a:	b343      	st.w      	r2, (r3, 0xc)
		StartProgram;
  8c:	b344      	st.w      	r2, (r3, 0x10)
		while((GetCRStatus)!=0);
  8e:	9344      	ld.w      	r2, (r3, 0x10)
  90:	3a40      	cmpnei      	r2, 0
  92:	0bfe      	bt      	0x8e	// 8e <ProgramOneWord+0x1a>
		Result=*(volatile unsigned int *)ProgramAdd;
  94:	9040      	ld.w      	r2, (r0, 0)
  96:	b840      	st.w      	r2, (sp, 0)
	}
	while(Result!= WrData);
  98:	9840      	ld.w      	r2, (sp, 0)
  9a:	6486      	cmpne      	r1, r2
  9c:	0bf3      	bt      	0x82	// 82 <ProgramOneWord+0xe>
}
  9e:	1401      	addi      	sp, sp, 4
  a0:	1481      	pop      	r4

000000a2 <ReadOneWord>:
//EntryParameter:NONE
//ReturnValue:NONE
*************************************************************/  
unsigned int ReadOneWord(unsigned int RdAdd)
{
	unsigned int DataBuffer=*(volatile unsigned int *)RdAdd;
  a2:	9000      	ld.w      	r0, (r0, 0)
	return DataBuffer;
}
  a4:	783c      	rts

000000a6 <ChipErase>:
//EntryParameter:NONE
//ReturnValue:NONE
*************************************************************/
void ChipErase(void)
{
	SetUserKey;
  a6:	127d      	lrw      	r3, 0	// 218 <IFC_Int_Enable+0x12>
  a8:	125b      	lrw      	r2, 0x5a5a5a5a	// 214 <IFC_Int_Enable+0xe>
  aa:	9360      	ld.w      	r3, (r3, 0)
  ac:	b348      	st.w      	r2, (r3, 0x20)
	EnChipErase;
  ae:	125c      	lrw      	r2, 0x103	// 21c <IFC_Int_Enable+0x16>
  b0:	b343      	st.w      	r2, (r3, 0xc)
	StartErase;
  b2:	3201      	movi      	r2, 1
  b4:	b344      	st.w      	r2, (r3, 0x10)
	while((GetCRStatus)!=0);
  b6:	9344      	ld.w      	r2, (r3, 0x10)
  b8:	3a40      	cmpnei      	r2, 0
  ba:	0bfe      	bt      	0xb6	// b6 <ChipErase+0x10>
	while((GetIFCRawStatus & Undefine_INT)==Undefine_INT)ClrUndefineErro;
  bc:	3280      	movi      	r2, 128
  be:	4246      	lsli      	r2, r2, 6
  c0:	932a      	ld.w      	r1, (r3, 0x28)
  c2:	6848      	and      	r1, r2
  c4:	3940      	cmpnei      	r1, 0
  c6:	0802      	bt      	0xca	// ca <ChipErase+0x24>
}
  c8:	783c      	rts
	while((GetIFCRawStatus & Undefine_INT)==Undefine_INT)ClrUndefineErro;
  ca:	b349      	st.w      	r2, (r3, 0x24)
  cc:	07fa      	br      	0xc0	// c0 <ChipErase+0x1a>

000000ce <PageErase>:
//DROM_PageAdd0_Erase~DROM_PageAdd3_Erase
//ReturnValue:NONE
*************************************************************/
void PageErase(IFC_ROMSELETED_TypeDef XROM_PageAdd_Erase)
{
	SetUserKey;
  ce:	1273      	lrw      	r3, 0	// 218 <IFC_Int_Enable+0x12>
  d0:	1251      	lrw      	r2, 0x5a5a5a5a	// 214 <IFC_Int_Enable+0xe>
  d2:	9360      	ld.w      	r3, (r3, 0)
  d4:	b348      	st.w      	r2, (r3, 0x20)
	EnPageErase;
  d6:	3202      	movi      	r2, 2
  d8:	b343      	st.w      	r2, (r3, 0xc)
	WrProgramAdd(XROM_PageAdd_Erase);
	StartErase;
  da:	3201      	movi      	r2, 1
	WrProgramAdd(XROM_PageAdd_Erase);
  dc:	b306      	st.w      	r0, (r3, 0x18)
	StartErase;
  de:	b344      	st.w      	r2, (r3, 0x10)
	while((GetCRStatus)!=0);
  e0:	9344      	ld.w      	r2, (r3, 0x10)
  e2:	3a40      	cmpnei      	r2, 0
  e4:	0bfe      	bt      	0xe0	// e0 <PageErase+0x12>
	while((GetIFCRawStatus & Add_INT)==Add_INT)ClrAddErro;;
  e6:	3280      	movi      	r2, 128
  e8:	4247      	lsli      	r2, r2, 7
  ea:	932a      	ld.w      	r1, (r3, 0x28)
  ec:	6848      	and      	r1, r2
  ee:	3940      	cmpnei      	r1, 0
  f0:	0802      	bt      	0xf4	// f4 <PageErase+0x26>
}
  f2:	783c      	rts
	while((GetIFCRawStatus & Add_INT)==Add_INT)ClrAddErro;;
  f4:	b349      	st.w      	r2, (r3, 0x24)
  f6:	07fa      	br      	0xea	// ea <PageErase+0x1c>

000000f8 <IFC_CMR_Set>:
//HDP_2K_EN/HDP_4K_EN/HDP_FULL_EN/RDP_EN/DEBUGP_EN/UseOpion_EN
//ReturnValue:NONE
/*************************************************************/  
void IFC_CMR_Set(IFC_CMR_TypeDef IFC_CMR)
{
	SetUserKey;
  f8:	1268      	lrw      	r3, 0	// 218 <IFC_Int_Enable+0x12>
  fa:	1247      	lrw      	r2, 0x5a5a5a5a	// 214 <IFC_Int_Enable+0xe>
  fc:	9360      	ld.w      	r3, (r3, 0)
  fe:	b348      	st.w      	r2, (r3, 0x20)
	SetIFCCommand(IFC_CMR);
 100:	38a8      	bseti      	r0, r0, 8
	StartProgram;
 102:	3201      	movi      	r2, 1
	SetIFCCommand(IFC_CMR);
 104:	b303      	st.w      	r0, (r3, 0xc)
	StartProgram;
 106:	b344      	st.w      	r2, (r3, 0x10)
	while((GetCRStatus)!=0);
 108:	9344      	ld.w      	r2, (r3, 0x10)
 10a:	3a40      	cmpnei      	r2, 0
 10c:	0bfe      	bt      	0x108	// 108 <IFC_CMR_Set+0x10>
}
 10e:	783c      	rts

00000110 <FlashData_Write>:
//EntryParameter:FlashDataArry[_FlashData_BUFSIZE]
//start address=0x10000000
//ReturnValue:NONE
/*************************************************************/
void FlashData_Write(void)
{
 110:	14d1      	push      	r4, r15
	unsigned int i;
	for(i=0;i<_FlashData_BUFSIZE;i++)
 112:	3300      	movi      	r3, 0
	{
		//FlashDataArry[i]=i;
		DataBuffer[i]=0;
 114:	1243      	lrw      	r2, 0	// 220 <IFC_Int_Enable+0x1a>
 116:	608c      	addu      	r2, r3
	for(i=0;i<_FlashData_BUFSIZE;i++)
 118:	2300      	addi      	r3, 1
		DataBuffer[i]=0;
 11a:	3100      	movi      	r1, 0
	for(i=0;i<_FlashData_BUFSIZE;i++)
 11c:	3b4a      	cmpnei      	r3, 10
		DataBuffer[i]=0;
 11e:	a220      	st.b      	r1, (r2, 0)
	for(i=0;i<_FlashData_BUFSIZE;i++)
 120:	0bfa      	bt      	0x114	// 114 <FlashData_Write+0x4>
	}
	EnIFCClk;
 122:	119e      	lrw      	r4, 0	// 218 <IFC_Int_Enable+0x12>
 124:	3201      	movi      	r2, 1
 126:	9460      	ld.w      	r3, (r4, 0)
	PageErase(DROM_PageAdd0_Erase);					
 128:	3080      	movi      	r0, 128
	EnIFCClk;
 12a:	b341      	st.w      	r2, (r3, 0x4)
	PageErase(DROM_PageAdd0_Erase);					
 12c:	4015      	lsli      	r0, r0, 21
 12e:	e0000000 	bsr      	0	// ce <PageErase>
	ProgramData(0x10000000,_FlashData_BUFSIZE,&FlashDataArry[0]);
 132:	3080      	movi      	r0, 128
 134:	115c      	lrw      	r2, 0	// 224 <IFC_Int_Enable+0x1e>
 136:	310a      	movi      	r1, 10
 138:	4015      	lsli      	r0, r0, 21
 13a:	e0000000 	bsr      	0	// 0 <ProgramData>
	ReadDataArry(0x10000000,_FlashData_BUFSIZE,&DataBuffer[0]);
 13e:	3080      	movi      	r0, 128
 140:	1158      	lrw      	r2, 0	// 220 <IFC_Int_Enable+0x1a>
 142:	310a      	movi      	r1, 10
 144:	4015      	lsli      	r0, r0, 21
 146:	e0000000 	bsr      	0	// 4c <ReadDataArry>
	for(i=0;i<_FlashData_BUFSIZE;i++)
 14a:	3300      	movi      	r3, 0
	{
		while(DataBuffer[i]!=FlashDataArry[i]);
 14c:	1155      	lrw      	r2, 0	// 220 <IFC_Int_Enable+0x1a>
 14e:	608c      	addu      	r2, r3
 150:	8220      	ld.b      	r1, (r2, 0)
 152:	1155      	lrw      	r2, 0	// 224 <IFC_Int_Enable+0x1e>
 154:	608c      	addu      	r2, r3
 156:	8240      	ld.b      	r2, (r2, 0)
 158:	6486      	cmpne      	r1, r2
 15a:	0bff      	bt      	0x158	// 158 <FlashData_Write+0x48>
	for(i=0;i<_FlashData_BUFSIZE;i++)
 15c:	2300      	addi      	r3, 1
 15e:	3b4a      	cmpnei      	r3, 10
 160:	0bf6      	bt      	0x14c	// 14c <FlashData_Write+0x3c>
	}
	DisIFCClk;
 162:	9460      	ld.w      	r3, (r4, 0)
 164:	32fe      	movi      	r2, 254
 166:	b341      	st.w      	r2, (r3, 0x4)
}
 168:	1491      	pop      	r4, r15

0000016a <FlashData_Read>:
//EntryParameter:None
//start address=0x10000000
//ReturnValue:DataBuffer
/*************************************************************/
void FlashData_Read(void)
{
 16a:	14d1      	push      	r4, r15
	EnIFCClk;
 16c:	118b      	lrw      	r4, 0	// 218 <IFC_Int_Enable+0x12>
 16e:	3201      	movi      	r2, 1
 170:	9460      	ld.w      	r3, (r4, 0)
	ReadDataArry(0x10000000,_FlashData_BUFSIZE,&DataBuffer[0]);
 172:	3080      	movi      	r0, 128
	EnIFCClk;
 174:	b341      	st.w      	r2, (r3, 0x4)
	ReadDataArry(0x10000000,_FlashData_BUFSIZE,&DataBuffer[0]);
 176:	4015      	lsli      	r0, r0, 21
 178:	114a      	lrw      	r2, 0	// 220 <IFC_Int_Enable+0x1a>
 17a:	310a      	movi      	r1, 10
 17c:	e0000000 	bsr      	0	// 4c <ReadDataArry>
	DisIFCClk;
 180:	9460      	ld.w      	r3, (r4, 0)
 182:	32fe      	movi      	r2, 254
 184:	b341      	st.w      	r2, (r3, 0x4)
}
 186:	1491      	pop      	r4, r15

00000188 <get_user_option>:
//ReturnValue:NONE
/*************************************************************/
U32_T get_user_option(void)
{
	U32_T opt;
	IFC -> CEDR = IFC_CLKEN;   			//enable IFC clock	
 188:	1164      	lrw      	r3, 0	// 218 <IFC_Int_Enable+0x12>
 18a:	3201      	movi      	r2, 1
 18c:	9360      	ld.w      	r3, (r3, 0)
 18e:	b341      	st.w      	r2, (r3, 0x4)
	CSP_IFC_SET_KR(IFC, USER_KEY); 	// Write Key
 190:	1141      	lrw      	r2, 0x5a5a5a5a	// 214 <IFC_Int_Enable+0xe>
 192:	b348      	st.w      	r2, (r3, 0x20)
	CSP_IFC_SET_CMR(IFC, HIDM3); 	// 
 194:	32c0      	movi      	r2, 192
 196:	4242      	lsli      	r2, r2, 2
 198:	b343      	st.w      	r2, (r3, 0xc)
	opt =  *((volatile unsigned int *)(0x00080084));
 19a:	1164      	lrw      	r3, 0x80080	// 228 <IFC_Int_Enable+0x22>
 19c:	9301      	ld.w      	r0, (r3, 0x4)
	return opt;
}
 19e:	783c      	rts

000001a0 <erase_user_option>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void erase_user_option(void)
{	
	IFC -> CEDR = IFC_CLKEN;   //enable IFC clock
 1a0:	107e      	lrw      	r3, 0	// 218 <IFC_Int_Enable+0x12>
 1a2:	3201      	movi      	r2, 1
 1a4:	9360      	ld.w      	r3, (r3, 0)
 1a6:	b341      	st.w      	r2, (r3, 0x4)
	IFC->SRR = IFC_SWRST; // soft reset
 1a8:	b342      	st.w      	r2, (r3, 0x8)
	CSP_IFC_SET_KR(IFC, USER_KEY); // Write Key
 1aa:	105b      	lrw      	r2, 0x5a5a5a5a	// 214 <IFC_Int_Enable+0xe>
 1ac:	b348      	st.w      	r2, (r3, 0x20)
	CSP_IFC_SET_CMR(IFC, HIDM1|IF0_ERASE); // IF0 Erase
 1ae:	3282      	movi      	r2, 130
 1b0:	4241      	lsli      	r2, r2, 1
 1b2:	b343      	st.w      	r2, (r3, 0xc)
	CSP_IFC_SET_CR(IFC, START); // Start Erase
 1b4:	3201      	movi      	r2, 1
 1b6:	b344      	st.w      	r2, (r3, 0x10)
	while ( CSP_IFC_GET_CR(IFC) != 0x0 ); // Wait for operation done
 1b8:	9344      	ld.w      	r2, (r3, 0x10)
 1ba:	3a40      	cmpnei      	r2, 0
 1bc:	0bfe      	bt      	0x1b8	// 1b8 <erase_user_option+0x18>
}
 1be:	783c      	rts

000001c0 <set_user_option>:
//IFC Interrupt erase
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void set_user_option(U32_T opt)
{
 1c0:	14d2      	push      	r4-r5, r15
	U16_T i =0,j=0;
	IFC -> CEDR = IFC_CLKEN;   						//enable IFC clock
 1c2:	1096      	lrw      	r4, 0	// 218 <IFC_Int_Enable+0x12>
 1c4:	3201      	movi      	r2, 1
 1c6:	9460      	ld.w      	r3, (r4, 0)
 1c8:	b341      	st.w      	r2, (r3, 0x4)
	IFC->SRR = IFC_SWRST; 							// soft reset		
 1ca:	b342      	st.w      	r2, (r3, 0x8)
{
 1cc:	6d43      	mov      	r5, r0
	erase_user_option();
 1ce:	e0000000 	bsr      	0	// 1a0 <erase_user_option>
		for(j=0;j<1000;j++)
		{
			j=j+0;
		}
	}
	CSP_IFC_SET_KR(IFC, USER_KEY);      			// Write Key
 1d2:	9460      	ld.w      	r3, (r4, 0)
 1d4:	1050      	lrw      	r2, 0x5a5a5a5a	// 214 <IFC_Int_Enable+0xe>
 1d6:	b348      	st.w      	r2, (r3, 0x20)
    CSP_IFC_SET_CMR(IFC, HIDM1|USER_OPTION);    	// Program
 1d8:	1055      	lrw      	r2, 0x10f	// 22c <IFC_Int_Enable+0x26>
 1da:	b343      	st.w      	r2, (r3, 0xc)
    CSP_IFC_SET_DR(IFC, opt);    					// Program data
    CSP_IFC_SET_CR(IFC, START);         			// Start Program
 1dc:	3201      	movi      	r2, 1
    CSP_IFC_SET_DR(IFC, opt);    					// Program data
 1de:	b3a7      	st.w      	r5, (r3, 0x1c)
    CSP_IFC_SET_CR(IFC, START);         			// Start Program
 1e0:	b344      	st.w      	r2, (r3, 0x10)
    while ( CSP_IFC_GET_CR(IFC) != 0x0 );  			// Wait for operation done
 1e2:	9344      	ld.w      	r2, (r3, 0x10)
 1e4:	3a40      	cmpnei      	r2, 0
 1e6:	0bfe      	bt      	0x1e2	// 1e2 <set_user_option+0x22>
}
 1e8:	1492      	pop      	r4-r5, r15

000001ea <IFC_interrupt_CMD>:
//IFC_INT_x:End_INT、Port_INT、Undefine_INT、Add_INT、OverWrite_INT
//ReturnValue:NONE
*************************************************************/
void IFC_interrupt_CMD(FunctionalStatus NewState ,IFC_INT_TypeDef IFC_INT_x)
{
	if(NewState != DISABLE)
 1ea:	3840      	cmpnei      	r0, 0
 1ec:	106b      	lrw      	r3, 0	// 218 <IFC_Int_Enable+0x12>
 1ee:	0c06      	bf      	0x1fa	// 1fa <IFC_interrupt_CMD+0x10>
	{
		IFC->ICR =IFC->ICR|IFC_INT_x;
 1f0:	9340      	ld.w      	r2, (r3, 0)
 1f2:	9269      	ld.w      	r3, (r2, 0x24)
 1f4:	6c4c      	or      	r1, r3
 1f6:	b229      	st.w      	r1, (r2, 0x24)
	}
	else 
	{
		IFC->ICR =IFC->ICR & (~IFC_INT_x);
	}
}
 1f8:	783c      	rts
		IFC->ICR =IFC->ICR & (~IFC_INT_x);
 1fa:	9360      	ld.w      	r3, (r3, 0)
 1fc:	9349      	ld.w      	r2, (r3, 0x24)
 1fe:	6c46      	nor      	r1, r1
 200:	6848      	and      	r1, r2
 202:	b329      	st.w      	r1, (r3, 0x24)
}
 204:	07fa      	br      	0x1f8	// 1f8 <IFC_interrupt_CMD+0xe>

00000206 <IFC_Int_Enable>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void IFC_Int_Enable(void)
{
    IFC->ICLR=0XF000;					//CLAER IFC INT status
 206:	1065      	lrw      	r3, 0	// 218 <IFC_Int_Enable+0x12>
 208:	9340      	ld.w      	r2, (r3, 0)
 20a:	33f0      	movi      	r3, 240
 20c:	4368      	lsli      	r3, r3, 8
 20e:	b26c      	st.w      	r3, (r2, 0x30)
	INTC_ISER_WRITE(IFC_INT);    
 210:	3204      	movi      	r2, 4
 212:	040f      	br      	0x230	// 230 <IFC_Int_Enable+0x2a>
 214:	5a5a5a5a 	.long	0x5a5a5a5a
 218:	00000000 	.long	0x00000000
 21c:	00000103 	.long	0x00000103
	...
 228:	00080080 	.long	0x00080080
 22c:	0000010f 	.long	0x0000010f
 230:	1067      	lrw      	r3, 0	// 24c <IFC_Int_Disable+0x12>
 232:	9360      	ld.w      	r3, (r3, 0)
 234:	23ff      	addi      	r3, 256
 236:	b340      	st.w      	r2, (r3, 0)
}
 238:	783c      	rts

0000023a <IFC_Int_Disable>:
//EntryParameter:NONE
//ReturnValue:NONE
/*************************************************************/
void IFC_Int_Disable(void)
{
    INTC_ICER_WRITE(IFC_INT);    
 23a:	1065      	lrw      	r3, 0	// 24c <IFC_Int_Disable+0x12>
 23c:	32c0      	movi      	r2, 192
 23e:	9360      	ld.w      	r3, (r3, 0)
 240:	4241      	lsli      	r2, r2, 1
 242:	60c8      	addu      	r3, r2
 244:	3204      	movi      	r2, 4
 246:	b340      	st.w      	r2, (r3, 0)
}
 248:	783c      	rts
 24a:	0000      	bkpt
 24c:	00000000 	.long	0x00000000
